﻿package fr.babos.core.utils 
{
	/**
	 * Classe utilitaire sur la gestion des objets.
	 * @author ZoulouX
	 */
	public class ObjectUtils
	{
		/**
		 * Ajouter toutes les propriétés de extra dans source.
		 * Peut être pratique pour ajouter rapidement des propriété à un objet fraichement instancié.
		 * ex: var monSprite:Sprite = ObjectUtils.extra(new MyDisplayObject(), {x:5, y:8, alpha:0.5}) as Sprite;
		 * NB: Pas de copie de propriété générée.
		 * NB2: Attention à ne pase utiliser une classe non explorable dans pExtra (aucune propriété non explorable ne sera copiée).
		 * @param	pSource : L'objet accueillant les propriétés de extra
		 * @param	pExtra : L'objet contenant les propriétés
		 * @return : l'objet source agrémenté des propriétés de extra
		 */
		public static function extra (pSource:Object, pExtra:Object):Object
		{
			// Parcourir extra
			for (var i:* in pExtra)
			{
				// Ajouter la propriété dans source
				pSource[i] = pExtra[i];
			}
			
			// Retourner source
			return pSource;
		}
	}
}